/*
 * @Descripttion: 
 * @version: 
 * @Author: turingchang
 * @Date: 2020-12-16 11:14:48
 * @LastEditors: turingchang
 * @LastEditTime: 2020-12-21 15:03:13
 */

let ms = require('m-service');

 // 启动自定义
class AppBootHook {

  constructor(app) {
    this.app = app;
  }
  

  // 配置文件即将加载，这是最后动态修改配置的时机
  async configWillLoad(){
  }  
  // 文件加载完成
  async didLoad() {
    // 请将你的插件项目中 app.beforeStart 中的代码置于此处。
  }
  // 插件启动完毕
  async willReady() {
    // 请将你的应用项目中 app.beforeStart 中的代码置于此处。
    await this.initServiceCenter();
  }
  // worker 准备就绪
  async didReady(){
  }
  // 应用启动完成
  async serverDidReady(){
  }
  // 应用即将关闭
  async beforeClose(){
  }

  async initServiceCenter(){
    ms.createApp({
      centers:`http://${this.app.config.cluster.listen.hostname}:${this.app.config.cluster.listen.port}/api/center`, //指定服务中心
      center:{ //启动center，用于服务发现
        port:this.app.config.cluster.listen.port,
        // dataFile:'/var/log/m-service.json',
      },
      proxy:{ //启动proxy，自动处理代理服务发现，失败重试
        port:this.app.config.cluster.proxy.port,
      },
    });
  }
  
}

module.exports = AppBootHook;